package team.se.tms.dao;

import java.util.List;

/**
 * Dao接口层,定义了dao层调用的方法
 *
 * @author winkyle
 * @date 2018/11/1.
 */
public interface Dao {

    /**
     * 插入记录
     *
     * @param statement 要使用的mapper
     * @param parameter 参数
     * @return 插入结果
     * @throws Exception 异常
     * @create on 2018/11/1 by winkyle
     */
    int insert(String statement, Object parameter) throws Exception;

    /**
     * 删除记录
     *
     * @param statement 要使用的mapper
     * @param parameter 参数
     * @return 删除结果
     * @throws Exception 异常
     * @create on 2018/11/1 by winkyle
     */
    int delete(String statement, Object parameter) throws Exception;

    /**
     * 更新记录
     *
     * @param statement 要使用的mapper
     * @param parameter 参数
     * @return 更新结果
     * @throws Exception 异常
     * @create on 2018/11/1 by winkyle
     */
    int update(String statement, Object parameter) throws Exception;

    /**
     * 查找一条记录
     *
     * @param statement 要使用的mapper
     * @param parameter 参数
     * @return 查到的一条记录
     * @throws Exception 异常
     * @create on 2018/11/1 by winkyle
     */
    <T> T selectOne(String statement, Object parameter) throws Exception;

    /**
     * 查找多条记录
     *
     * @param statement 要使用的mapper
     * @param parameter 参数
     * @return 查到的多条记录
     * @throws Exception 异常
     * @create on 2018/11/1 by winkyle
     */
    <T> List<T> selectList(String statement, Object parameter) throws Exception;
}
